<script>
import { mapActions } from 'vuex'
import { postCode } from './api/index.js'
import {
  SET_USER_CODE,
  SET_USER_INFO
} from './store/mutation-types.js'

export default {
  onLaunch(){
    this.checkNewVersion();
    var userToken = wx.getStorageSync('userToken'); 
    var This = this;
    wx.login({
      success : res => {
        let code = res.code;
        This.$store.dispatch('_setUserCode',code); //把code存放在VUEX中管理
        wx.getSetting({
          success : res => {
            if(res.authSetting['scope.userInfo']){   //判断用户是否已经授权
                wx.getUserInfo({
                  success : res =>{
                    This.$store.dispatch('_setWXUserInfo',res);   //把获取到的用户的信息存放在vuex中进行管理
                    if(!userToken){//如果用户没有登陆过这个小程序
                      let parmar = {
                            raw_data:res.rawData,
                            signature:res.signature,
                            code:code
                          }
                        postCode(parmar).then(respones =>{
                        if(respones.data.level=="success"){
                          wx.setStorageSync('userToken',respones.data.data);
                          this._reqUserInfo();//获取后端用户信息
                        }else{
                          wx.showToast(respones.data.message,'none',1500);
                        }
                      }) 
                    } else {
                      this._reqUserInfo();//获取后端用户信息
                    }
                  }
                })  //getUserInfo结尾
            }else{
              wx.navigateTo({
                url:"/pages/login/main"
              })
            }
          }
        }) //getSetting结尾
      }
    }) //login结尾
  },
  methods:{
    ...mapActions(['_reqUserInfo']),
    checkNewVersion() { // 检查版本更新
      // 获取小程序更新机制兼容
      if (wx.canIUse("getUpdateManager")) {
          const updateManager = wx.getUpdateManager();
          updateManager.onCheckForUpdate(function (res) {
              // 请求完新版本信息的回调
              if (res.hasUpdate) {
                  updateManager.onUpdateReady(function () {
                      wx.showModal({
                          title: "更新提示",
                          content: "新版本已经准备好，是否重启应用？",
                          success: function (res) {
                              if (res.confirm) {
                                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                                  updateManager.applyUpdate();
                              }
                          }
                      });
                  });
                  updateManager.onUpdateFailed(function () {
                      // 新的版本下载失败
                      wx.showModal({
                          title: "已经有新版本了哟~",
                          content: "新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~"
                      });
                  });
              }
          });
      } else {
          // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
          wx.showModal({
              title: "提示",
              content: "当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。"
          });
      }
    }
  }
}
</script>

<style lang="stylus" scoped>
</style>
